From: Keir Fraser Date: Tue, 31 Mar 2009 10:32:56 +0000 (+0100) Subject: libxc: Fix xc_translate_foreign_address in non-paged mode X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~13989^2~58 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/%22bookmarks://%22/%22http:/www.example.com/cgi/%22https:/%22bookmarks:/%22?a=commitdiff_plain;h=03affb40e789671f1738560b2e2f2b0044e12fa3;p=xen.git libxc: Fix xc_translate_foreign_address in non-paged mode Returns paddr rather than gfn when in non-paged mode. Add a shift to fix it. Signed-off-by: George Dunlap --- diff --git a/tools/libxc/xc_pagetab.c b/tools/libxc/xc_pagetab.c index 00ee0f8ea4..1a4a3d01e5 100644 --- a/tools/libxc/xc_pagetab.c +++ b/tools/libxc/xc_pagetab.c @@ -32,7 +32,7 @@ unsigned long xc_translate_foreign_address(int xc_handle, uint32_t dom, &ctx, sizeof ctx) != 0) return 0; if (!(ctx.cr0 & CR0_PG)) - return virt; + return virt >> PAGE_SHIFT; pt_levels = (ctx.msr_efer&EFER_LMA) ? 4 : (ctx.cr4&CR4_PAE) ? 3 : 2; paddr = ctx.cr3 & ((pt_levels == 3) ? ~0x1full : ~0xfffull); } else {